/*
 * Copyright (C) 2009-2016 Hangzhou 2Dfire Technology Co., Ltd. All rights reserved
 */
package com.tongcao.cn.util;

import org.slf4j.Logger;
import org.slf4j.Marker;


/**
 * <b/>日志工具</b>
 * 后期有其他日志需求，请找<b>萝卜干、释迦<b/>
 * Maker: 用于区分业务类型
 * 业务级别日志: 日常业务信息、埋点信息、跟踪信息、业务异常(已知)...
 * 应用级别日志: 业务未捕捉的异常信息（全局统一捕获）、应用框架的信息(拦截器/过滤器/切面等)、超时...
 *
 * @author shijia.lym
 * @since 2016-09-06
 */
public class LoggerUtil {

    //warn、error级别
    private static final String EXCEPTION_TAG = "Exception: ";
    //异常拆分符号
    private static final String EXCEPTION_SPLIT = " ==> ";


    //-----------------------------------  统一规范的日志级别方法 ---------------------------------------

    //-----------------------------------  带Marker参数 ---------------------------------------

    /**
     * debug级别日志
     *
     * @param log 日志
     * @param msg 信息
     */
    public static void debug(Logger log, Marker marker, String msg) {
        log.debug(marker, msg);
    }

    /**
     * info级别日志
     *
     * @param log    日志
     * @param marker 标签
     * @param msg    信息
     */
    public static void info(Logger log, Marker marker, String msg) {
        log.info(marker, msg);
    }

    /**
     * info级别日志
     *
     * @param log    日志
     * @param marker 标签
     * @param format the format string
     * @param arg    the first argument
     */
    public static void info(Logger log, Marker marker, String format, Object arg) {
        log.info(marker, format, arg);
    }

    /**
     * info级别日志
     *
     * @param log    日志
     * @param marker 标签
     * @param format the format string
     * @param arg1   the first argument
     * @param arg2   the second argument
     */
    public static void info(Logger log, Marker marker, String format, Object arg1, Object arg2) {
        log.info(marker, format, arg1, arg2);
    }

    /**
     * info级别日志
     *
     * @param log       日志
     * @param marker    标签
     * @param format    the format string
     * @param arguments a list of 3 or more arguments
     */
    public static void info(Logger log, Marker marker, String format, Object... arguments) {
        log.info(marker, format, arguments);
    }


}
